{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Table of Contents\n", "* [1. General Information](#1.-General-Information)\n", "* [2. Syllabus and Schedule](#2.-Syllabus-and-Schedule)\n", "\t* [2.1 Schedule](#2.1-Schedule)\n", "\t* [2.2 Important Dates](#2.2-Important-Dates)\n", "* [3. Text and Software](#3.-Text-and-Software)\n", "\t* [3.1 Text](#3.1-Text)\n", "\t* [3.2 Software](#3.2-Software)\n", "* [4. Course Policies](#4.-Course-Policies)\n", "\t* [4.1 Participation](#4.1-Participation)\n", "\t* [4.2 Grading](#4.2-Grading)\n", "\t* [4.3 Submission and Late Policy](#4.3-Submission-and-Late-Policy)\n", "\t* [4.4 Exams](#4.4-Exams)\n", "\t* [4.5 Study Groups](#4.5-Study-Groups)\n", "* [5. Reference Links](#5.-Reference-Links)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. General Information" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Item | Description\n", "-- |--\n", "**Instructor** | Douglas Blank\n", "**Office hours** | Mondays and Tuesdays 10:00am - 11:00am, and by appointment\n", "**E-Mail** | [dblank@cs.brynmawr.edu](mailto:dblank@cs.brynmawr.edu)\n", "**Website** | http://cs.brynmawr.edu/cs206/\n", "**Class** | Tuesdays and Thursdays 2:25pm - 3:45pm\n", "**Room** | Park 336\n", "**Phone** | (610)526-6501\n", "**Open Lab** | Wednesdays 11:10am - 1:00pm Park Room 231 (Computer Science Lab)\n", "**Lab Assistants**| [Rachel Xu](mailto:rxu1@brynmawr.edu), Monday 8pm-10pm, Tuesday 8pm-10pm, Park Science 231\n", "**Grades** | http://moodle.brynmawr.edu/\n", "**Jupyter, login**| https://athena.brynmawr.edu/jupyter/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Syllabus and Schedule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Course Description**: Introduction to the fundamental algorithms and data structures using Java. Topics include: Object-Oriented programming, program design, fundamental data structures and complexity analysis. In particular, searching, sorting, the design and implementation of linked lists, stacks, queues, trees and hash maps and all corresponding complexity analysis. In addition, students will also become familiar with Java’s built-in data structures and how to use them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.1 Schedule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Week| DOW | Date | Topic | Assignment | Notes\n", "---|---- | ------ | ---------------------- | ---------- | -----\n", " 1 |Tues | 1/19 | [Introduction to Java](Notebooks/IntroToJava.ipynb) | [Assignment01](Notebooks/Assignment01.ipynb) | Get accounts, create a notebook\n", " |Thur | 1/21 | Java Language: syntax | [In-class activity](Notebooks/Jan21-inclass.ipynb); read Appendix A | functions (parameters/arguments, calling), booleans, control, etc.\n", " 2 |Tues | 1/26 | [Variables, Functions, and Loops](Notebooks/Variables%2C%20Functions%2C%20and%20Loops.ipynb), [OOP](Notebooks/Object-OrientedProgramming.ipynb) | For Thursday, bring 3 questions of your own making based on the material from Appendix A | \n", " |Thur | 1/28 | Data Structures | [Assignment02](Notebooks/Assignment02.ipynb) | [LinkedList](Notebooks/LinkedExamples.ipynb), [LinkedListSummary](Notebooks/LinkedListSummary.ipynb)\n", " 3 |Tues | 2/2 | [Recursion and Stacks](Notebooks/LinkedListSummary.ipynb) | Read Chapter 1, 5; Recursion: Chapter 5 | [Interfaces](Notebooks/Interfaces.ipynb), and [Inheritance](Notebooks/Inheritance.ipynb)\n", " |Thur | 2/4 | Abstractions, ADT, and Interfaces | [Assignment03](Notebooks/Lab%203.ipynb) | \n", " 4 |Tues | 2/9 | [BinaryTrees](Notebooks/BinaryTrees.ipynb) | Read Chapter 2 |\n", " |Thur | 2/11 | BinaryTrees | Read Chapter 2.4; Trees: Chapter 6 | \n", " 5 |Tues | 2/16 | [Sorting, Files, and Graphs](Notebooks/Sorting%2C%20Files%2C%20Graphs.ipynb) | [Assignment04](Notebooks/Lab%204.ipynb) | Sorting: Chapter 8; Graphs: Chapter 10; Files: Appendix A.10\n", " |Thur | 2/18 | Stacks and Queues | Chapter 3, 4 | \n", " 6 |Tues | 2/23 | Service Day | | No classes\n", " |Thur | 2/25 | Review | [Review notes](https://docs.google.com/presentation/d/1inNOuMCreOK3-mCLPAzTmEoc5m9HDSSTZ8Y_Dj4sBv4/edit?usp=sharing) |\n", " 7 |Tues | 3/1 | **Exam #1** | | \n", " |Thur | 3/2 | **Exam #1** | |\n", " 8 |Tues | 3/8 | **Spring** | | \n", " |Thur | 3/10 | **Break** | |\n", " 9 |Tues | 3/15 | Sets and Maps | Read Chapter 7 | \n", " |Thur | 3/17 | Dictionaries | POGIL Activity |\n", "10 |Tues | 3/22 | Hashing | POGIL Activity | \n", " |Thur | 3/24 | HashMaps and HashSets | |\n", "11 |Tues | 3/29 | [AVL Trees](Notebooks/AVL Trees.ipynb) | Read Chapter 9 | \n", " |Thur | 3/31 | [Other Self-Balancing Search Trees](Notebooks/Self-Balancing Search Trees.ipynb) | |\n", "12 |Tues | 4/5 | Red-Black Trees | | \n", " |Thur | 4/7 | Graphs | Read Chapter 10 |\n", "13 |Tues | 4/12 | [Graphs](Notebooks/Graphs_Continued.ipynb) | | \n", " |Thur | 4/14 | Hand out [Review Sheet](Notebooks/Data Structure Review.ipynb) | Work on Projects |\n", "14 |Tues | 4/19 | Review | Work On Projects: [Game Design](Notebooks/GameDesign.ipynb) | \n", " |Thur | 4/21 | Presentations | |\n", "15 |Tues | 4/26 | Presentations | |\n", "\n", "The final exam is self-scheduled during exam week." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.2 Important Dates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Bryn Mawr & Haverford Classes begin, Tuesday, January 19, 2016\n", "* Spring Preregistration Ends (6pm), Wednesday, January 27, 2016\n", "* 5th course drop deadline (5pm), Friday, February 5, 2016\n", "* Credit/No Credit deadline for 1st quarter class, Friday, February 5, 2016\n", "* Credit/No Credit deadline for semester classes, Friday, February 26, 2016\n", "* Last day of Classes, Friday, April 29, 2016\n", "* Reading Day, Saturday, April 30, 2016\n", "* Reading Day, Sunday, May 1, 2016\n", "* Exam Period Begins, Monday, May 2, 2016\n", "* Senior Exams and written work due at 5pm, Saturday, May 7, 2016\n", "* Senior Grades Due (noon), Monday, May 9, 2016\n", "* Final exams end (and written work due) at noon, Friday, May 13, 2016" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. Text and Software" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.1 Text" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

CS206: Data Structures

\n", "

Bryn Mawr College
Spring 2016
Professor Douglas Blank

\n", "
\n", "\n", "
\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "**Data Structures: Abstraction & Design Using Java, 2nd Edition**. Elliot B. Koffman & Paul A. Wolfgang, Wiley 2010.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.2 Software" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will be using the Jupyter Java9 interpreter and compiler, installed on the Athena computer cluster:\n", "* https://athena.brynmawr.edu/jupyter\n", "\n", "You will received a password and username in class. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4. Course Policies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.1 Participation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments.\n", "\n", "I am available to answer your questions, listen to concerns, and talk about any course-related topic (or otherwise). Please come to office hours! This helps me get to know you. You are welcome to stop by and chat. There are many more exciting topics to talk about that we won't have time to cover in-class.\n", "\n", "Although computer science work can be intense, please stay in touch, particularly if you feel stuck on a topic or project and can't figure out how to proceed. Often a quick e-mail, phone call or face-to-face conference can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments early, since we will be covering a variety of challenging topics in this course." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.2 Grading" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There will be about seven assignments, weighted equally in the final grading. Assignments must be submitted according to the Assignment Submission instructions. \n", "\n", "At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:\n", "\n", "Item | Percentage\n", "----- | ---------\n", "Exam 1 | 10%\n", "Project | 20%\n", "Final Exam | 20%\n", "Assignments| 50% \n", "Total | 100%\n", "\n", "Incomplete grades will be given only for verifiable medical illness or other such dire circumstances." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.3 Submission and Late Policy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment. E-mail submissions, when permitted, should request a \"delivery receipt\" to document time and date of submission. Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance and supported by your Academic Dean.\n", "\n", "**No assignment will be accepted after it is past due.**\n", "\n", "**No past work can be \"made up\" after it is due.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.4 Exams" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There will be three exams in this course. The exams will be closed-book and closed-notes. The exams will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4.5 Study Groups" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:\n", "\n", "* The readings and lecture topics are group work. Please discuss the readings and associated topics with each other. Work together to understand the material. We highly recommend forming a reading group to discuss the material -- we will explore many ideas and it helps to have multiple people working together to understand them.\n", "* It is fine to discuss the topics covered in the homeworks, to discuss approaches to problems, and to sketch out general solutions. However, you MUST write up the homework answers, solutions, and programs individually without sharing specific solutions, mathematical results, program code, etc. If you made any notes or worked out something on a white board with another person while you were discussing the homework, you shouldn't use those notes while writing up your answer.\n", "* You should not show your code to other students before it is submitted. After it has been submitted, we will share and demonstrate code.\n", "* You may discuss high-level code ideas with others.\n", "\n", "If you have any questions as to what types of collaborations are allowed, please feel free to ask." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5. Reference Links" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Grades: http://moodle.brynmawr.edu/\n", "* Jupyter: https://athena.brynmawr.edu/jupyter" ] } ], "metadata": { "kernelspec": { "display_name": "Calysto LC3", "language": "gas", "name": "calysto_lc3" }, "language_info": { "file_extension": ".asm", "mimetype": "text/x-gas", "name": "gas" } }, "nbformat": 4, "nbformat_minor": 0 }